package com.junlinpro.utils;

import org.springframework.stereotype.Component;

import java.util.HashMap;
import java.util.Hashtable;
import java.util.Map;

@Component
public class UdpMapData {

    private Map<String, Map<String, byte[]>> udpMap = new HashMap<>();

    private Map<String, Integer> frameNumerMap = new HashMap<>();

    private Map<String, Map<String, byte[]>> alarmUdpMap = new HashMap<>();

    private Map<String, Integer> alarmFrameNumerMap = new HashMap<>();

    private Map<String, Map<String, byte[]>> oneAlarmUdpMap = new HashMap<>();

    public synchronized void alarmFrameNumerMapPut(String cardKey) {
        if (alarmFrameNumerMap.get(cardKey) != null) {
            alarmFrameNumerMap.put(cardKey, alarmFrameNumerMap.get(cardKey) + 1);
        } else {
            alarmFrameNumerMap.put(cardKey, 1);
        }
    }

    public synchronized Integer alarmFrameNumerMapGet(String cardKey) {
        Integer rtnData = alarmFrameNumerMap.get(cardKey);
        return rtnData;
    }

    public synchronized void alarmFrameNumerSetNull(String cardKey) {
        alarmFrameNumerMap.remove(cardKey);
    }

    public synchronized void alarmUdpMapPut(String cardKey, String frameKey, byte[] byteData) {
        if (alarmUdpMap.get(cardKey) != null && alarmUdpMap.get(cardKey).size() > 0) {
            alarmUdpMap.get(cardKey).put(frameKey, byteData);
        } else {
            Map frameMap = new HashMap();
            frameMap.put(frameKey, byteData);
            alarmUdpMap.put(cardKey, frameMap);
        }
    }

    public synchronized Map<String, byte[]> alarmUdpMapGet(String cardKey) {
        Map<String, byte[]> rtnData = alarmUdpMap.get(cardKey);
        alarmUdpMap.remove(cardKey);
        return rtnData;
    }

    public synchronized void frameNumerMapPut(String cardKey) {
        if (frameNumerMap.get(cardKey) != null) {
            frameNumerMap.put(cardKey, frameNumerMap.get(cardKey) + 1);
        } else {
            frameNumerMap.put(cardKey, 1);
        }
    }

    public synchronized Integer frameNumerMapGet(String cardKey) {
        Integer rtnData = frameNumerMap.get(cardKey);
        return rtnData;
    }

    public synchronized void frameNumerSetNull(String cardKey) {
        frameNumerMap.remove(cardKey);
    }

    public synchronized void udpMapPut(String cardKey, String frameKey, byte[] byteData) {
        if (udpMap.get(cardKey) != null && udpMap.get(cardKey).size() > 0) {
            udpMap.get(cardKey).put(frameKey, byteData);
        } else {
            Map frameMap = new HashMap();
            frameMap.put(frameKey, byteData);
            udpMap.put(cardKey, frameMap);
        }
    }

    public synchronized Map<String, byte[]> udpMapGet(String cardKey) {
        Map<String, byte[]> rtnData = udpMap.get(cardKey);
        udpMap.remove(cardKey);
        return rtnData;
    }

}
